home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 38 / Amiga Format CD38 (1999-03-15)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-04].iso / -seriously_amiga- / programming / other / wild / developer / examples / src / cynetik / cynetic1.s next >
Text File  |  1999-01-25  |  6KB  |  275 lines

  1.  
  2.     output    wildpj:demos/3d/cynetik/Cynetik_Flat
  3.     
  4.     include    exec/exec_lib.i
  5.     include    wildinc.gs
  6.     include    wild/wild.i
  7.     include    wild/allmodules.i
  8.     include    extensions/vektorial.i
  9.     include    pypermacro.i
  10.  
  11.     Exec
  12.     lea.l    wildname,a1
  13.     jsr    _LVOOldOpenLibrary(a6)
  14.     move.l    d0,_WILDBase
  15.     beq    exit
  16.     
  17.     bsr    Go
  18.  
  19. exit    Exec
  20.     movea.l    _WILDBase,a1
  21.     move.l    a1,d0
  22.     beq.b    .nwi
  23. .nwi    jsr    _LVOCloseLibrary(a6)
  24.     moveq.l    #0,d0
  25.     rts
  26.     
  27. vektname    dc.b    'libs:Wild/Vektorial.library',0
  28. wildname    dc.b    'wild.library',0
  29. drawm        dc.b    'Flat',0
  30. dispm        dc.b    'TryPeJam+',0
  31. brokm        dc.b    'NiX+',0
  32. lighm        dc.b    'Flash',0
  33. sincosname2    dc.b    'libs:'
  34. sincosname1    dc.b    'wild/tables/sincos1616.table',0
  35.         cnop    0,4
  36. _WILDBase    dc.l    0
  37. VektBase    dc.l    0
  38. WApp        dc.l    0
  39. AppTags        dc.l    WITD_Scene,TestScene
  40.         dc.l    WIAP_DrawModule,drawm
  41.         dc.l    WIAP_DisplayModule,dispm
  42.         dc.l    WIAP_BrokerModule,brokm
  43.         dc.l    WIAP_LightModule,lighm
  44.         dc.l    WIDI_Width,320
  45.         dc.l    WIDI_Height,256
  46.         dc.l    WIDI_DisplayID,$21000
  47.         dc.l    WITD_CutDistance,32000
  48.         dc.l    0
  49. sincos        dc.l    0
  50. SinOffs        dc.l    0
  51.  
  52. Go    bsr    SetUpWildApp
  53.     bsr    SetUpExts
  54.     
  55. cycle    Wild
  56.     move.l    WApp,a0
  57.     Call    InitFrame
  58.     move.l    WApp,a0
  59.     Call    RealyzeFrame
  60.     move.l    WApp,a0
  61.     Call    DisplayFrame
  62.  
  63.     add.w    #8,PUI
  64.     bmi.b    .npuir
  65.     clr.w    PUI
  66. .npuir    moveq.l    #0,d0
  67.     move.b    $dff007,d0
  68.     andi.w    #63,d0
  69.     cmp.w    #36,d0
  70.     bge.b    .nadpui
  71.     move.w    PUI,d1
  72.     sub.w    d0,d1
  73.     cmp.w    #-255,d1
  74.     bge.b    .ntpui
  75.     move.w    #-255,d1
  76. .ntpui    move.w    d1,PUI
  77. .nadpui
  78.  
  79. RotSecY    MACRO    ;\1=sec,angle EA
  80.     movea.l    VektBase,a6
  81.     lea.l    SECTOR_\1+ent_Ref+ref_I+Rel,a0
  82.     move.l    \2,d0
  83.     moveq.l    #vek_X,d1
  84.     moveq.l    #vek_Z,d2
  85.     Call    RotateDD
  86.     lea.l    SECTOR_\1+ent_Ref+ref_K+Rel,a0
  87.     move.l    \2,d0
  88.     moveq.l    #vek_X,d1
  89.     moveq.l    #vek_Z,d2
  90.     Call    RotateDD
  91.     ENDM
  92.     
  93.     RotSecY    SkruBase,BaseRot
  94.     RotSecY    SkruTreA,TreRot
  95.     RotSecY    SkruTreB,TreRot
  96.     RotSecY    SkruHeadA,HeadRot
  97.     RotSecY    SkruHeadB,HeadRot
  98.     RotSecY    SkruHeadC,HeadRot
  99.     RotSecY    SkruHeadD,HeadRot
  100.     RotSecY    SkruHeadE,HeadRot
  101.     RotSecY    SkruHeadF,HeadRot
  102.  
  103.     sub.l    #10,MyCamera+ref_O+Abs+vek_Y
  104.         
  105.     movea.l    VektBase,a6
  106.     lea.l    MyCamera,a0
  107.     lea.l    SECTOR_SkruBase+ent_Ref+ref_O+Abs,a1
  108.     moveq.l    #1,d0
  109. CLA    Call    CamLookingAt
  110.  
  111. .pr    btst    #7,$bfe001
  112.     beq.b    .pr
  113.     
  114.     btst    #6,$bfe001
  115.     bne    cycle
  116.  
  117.     bsr    KillWildApp
  118.     bsr    KillExts
  119.     rts
  120.  
  121. BaseRot    dc.l    5
  122. TreRot    dc.l    10
  123. HeadRot    dc.l    20
  124.  
  125. SetUpExts    Wild
  126.         moveq.l    #0,d0
  127.         lea.l    vektname,a1
  128.         Call    LoadExtension
  129.         move.l    d0,VektBase
  130.         
  131.         rts
  132.  
  133. KillExts    Wild
  134.         movea.l    VektBase,a1
  135.         Call    KillExtension
  136.         rts
  137.         
  138. SetUpWildApp    Exec
  139.         Call    CreateMsgPort
  140.         tst.l    d0
  141.         bne.b    .msgok
  142.         rts
  143. .msgok        Wild
  144.         movea.l    d0,a0
  145.         lea.l    AppTags,a1
  146.         Call    AddWildApp
  147.         move.l    d0,WApp
  148.         
  149.         lea.l    sincosname1,a0
  150.         moveq.l    #WITA_SINCOS1616,d0
  151.         Call    LoadTable
  152.         move.l    d0,sincos
  153.         bne.b    .had
  154.         lea.l    sincosname2,a0
  155.         moveq.l    #WITA_SINCOS1616,d0
  156.         Call    LoadTable
  157.         move.l    d0,sincos
  158. .had        rts
  159.  
  160. KillWildApp    Wild
  161.         move.l    sincos,a1
  162.         move.l    a1,d0
  163.         beq.b    .nsc
  164.         Call    KillTable
  165. .nsc        
  166.         move.l    WApp,d0
  167.         bne.b    .okwa
  168.         rts
  169. .okwa        movea.l    d0,a0
  170.         move.l    wap_WildPort(a0),d2
  171.         Call    RemWildApp
  172.         Exec
  173.         move.l    d2,a0
  174.         Call    DeleteMsgPort
  175.         rts
  176.                 
  177.  
  178. TestScene    dc.l    TestWorld
  179. MyCamera
  180.  
  181.         QuickRefAbs    0,0,-900
  182.  
  183.         dc.l    palette
  184.  
  185. palette        incbin    ice256.pal
  186.  
  187. *        DefAbs    0,0,-100
  188. *        DefAbs    0,1<<16,0
  189. *        DefAbs    1<<16,0,0
  190. *        DefAbs    0,0,1<<16
  191.  
  192. TestWorld
  193. twarhead    dc.l    TestArena
  194. twartail    dc.l    0
  195.         dc.l    TestArena
  196. twalhead    dc.l    twaltail
  197. twaltail    dc.l    0
  198.         dc.l    twalhead
  199.         dc.l    TestPlayer            
  200.  
  201. TestPlayer    dc.l    0            ; HAKK: no player, for now a sector is enough
  202.  
  203. TestArena    dc.l    twartail
  204.         dc.l    twarhead
  205.         QuickRefRel    0,0,0
  206.         dc.l    0            ; Parent of arenas is UNIVERSE! ABSOLUTE=RELATIVE
  207.         dc.l    0
  208.         dc.w    0
  209.         
  210. tasehead    dc.l    SECTOR_SkruBase
  211. tasetail    dc.l    0    
  212.         dc.l    SECTOR_SkruHeadF
  213.  
  214. taalhead    dc.l    taaltail
  215. taaltail    dc.l    0
  216.         dc.l    taalhead
  217. talihead    dc.l    TestLight
  218. talitail    dc.l    0
  219.         dc.l    TestLight
  220.         dcb    Sphere_SIZE*3
  221.         dc.l    0
  222.  
  223. TestLight    dc.l    AmbLight,talihead
  224.         dc.l    DOT_SkruBase11
  225.         dc.l    $0055ff
  226.         dc.w    255
  227.  
  228. AmbLight    dc.l    talitail,TestLight
  229.         dc.l    0
  230.         dc.l    $ffca22
  231.         dc.w    -16
  232.  
  233. TextTex        EQU    0
  234. TEXTURE_SkruBase0    EQU    TextTex
  235. TEXTURE_SkruTreA0    EQU    TextTex
  236. TEXTURE_SkruTreB0    EQU    TextTex
  237. TEXTURE_SkruHeadA0    EQU    TextTex
  238. TEXTURE_SkruHeadB0    EQU    TextTex
  239. TEXTURE_SkruHeadC0    EQU    TextTex
  240. TEXTURE_SkruHeadD0    EQU    TextTex
  241. TEXTURE_SkruHeadE0    EQU    TextTex
  242. TEXTURE_SkruHeadF0    EQU    TextTex
  243.         
  244. PUI        dc.w    -16
  245.     
  246.         MakeSector SkruBase,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruBase.sec.s
  247.         MakeSector SkruTreA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreA.sec.s
  248.         MakeSector SkruTreB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruTreB.sec.s
  249.         MakeSector SkruHeadA,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadA.sec.s
  250.         MakeSector SkruHeadB,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadB.sec.s
  251.         MakeSector SkruHeadC,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadC.sec.s
  252.         MakeSector SkruHeadD,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadD.sec.s
  253.         MakeSector SkruHeadE,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadE.sec.s
  254.         MakeSector SkruHeadF,WildPJ:Support/TestSectors/Cynematic/Skrumpler/SkruHeadF.sec.s
  255.         
  256.         LinkSector SkruBase,SECTOR_SkruTreA,tasehead,TestArena
  257.         LinkSector SkruTreA,SECTOR_SkruTreB,SECTOR_SkruBase,SECTOR_SkruBase
  258.         LinkSector SkruTreB,SECTOR_SkruHeadA,SECTOR_SkruTreA,SECTOR_SkruBase
  259.         LinkSector SkruHeadA,SECTOR_SkruHeadB,SECTOR_SkruTreB,SECTOR_SkruTreA
  260.         LinkSector SkruHeadB,SECTOR_SkruHeadC,SECTOR_SkruHeadA,SECTOR_SkruTreA
  261.         LinkSector SkruHeadC,SECTOR_SkruHeadD,SECTOR_SkruHeadB,SECTOR_SkruTreA
  262.         LinkSector SkruHeadD,SECTOR_SkruHeadE,SECTOR_SkruHeadC,SECTOR_SkruTreB
  263.         LinkSector SkruHeadE,SECTOR_SkruHeadF,SECTOR_SkruHeadD,SECTOR_SkruTreB
  264.         LinkSector SkruHeadF,tasetail,SECTOR_SkruHeadE,SECTOR_SkruTreB
  265.     
  266.         PosSector SkruBase,0,0,0
  267.         PosSector SkruTreA,220,-202,93
  268.         PosSector SkruTreB,-220,-202,-93
  269.         PosSector SkruHeadA,0,62,186
  270.         PosSector SkruHeadB,140,62,-93
  271.         PosSector SkruHeadC,-160,62,-93
  272.         PosSector SkruHeadD,0,62,186
  273.         PosSector SkruHeadE,140,62,-93
  274.         PosSector SkruHeadF,-160,62,-93
  275.